/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * FormAberturaChamados.java
 *
 * Created on 06/12/2011, 01:13:30
 */

package sistemachamados.view;
import classes.*;
import classes.Cidade;
import classes.Endereco;
import classes.Estado;
import classes.Local;
import java.util.*;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import javax.swing.JTextField;

/**
 *
 * @author Cleber Lopes
 */
public class FormLocal extends javax.swing.JInternalFrame {

    private Usuario usuarioLogado;
    public FormLocal(Usuario usuarioLogado) {
        initComponents();
        this.usuarioLogado = usuarioLogado;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        cmbUnidade = new javax.swing.JComboBox();
        btnPesquisar = new javax.swing.JButton();
        btnLimpar = new javax.swing.JButton();
        jLabel8 = new javax.swing.JLabel();
        txtEnderecoPesquisa = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        btnExcluir = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblUnidade = new javax.swing.JTable();
        btnIncluir = new javax.swing.JButton();
        btnAlterar = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        txtEndereco = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        btnCancelar = new javax.swing.JButton();
        txtUnidade = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        txtNumero = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        txtCidade = new javax.swing.JTextField();
        cmbEstado = new javax.swing.JComboBox();
        jLabel11 = new javax.swing.JLabel();
        txtCEP = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();

        setBorder(null);
        setClosable(true);
        setFrameIcon(null);
        setInheritsPopupMenu(true);
        setMinimumSize(new java.awt.Dimension(990, 470));
        setPreferredSize(new java.awt.Dimension(990, 470));
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                formComponentShown(evt);
            }
        });
        getContentPane().setLayout(null);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "FILTROS DE PESQUISA", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Showcard Gothic", 0, 16))); // NOI18N
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance().getContext().getResourceMap(FormLocal.class);
        jPanel1.setFont(resourceMap.getFont("jPanel1.font")); // NOI18N
        jPanel1.setName("jPanel1"); // NOI18N
        jPanel1.setOpaque(false);

        jLabel1.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel1.setText("Unidade");
        jLabel1.setName("jLabel1"); // NOI18N

        cmbUnidade.setFont(new java.awt.Font("Century Gothic", 0, 14)); // NOI18N
        cmbUnidade.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Todos" }));
        cmbUnidade.setName("cmbUnidade"); // NOI18N

        btnPesquisar.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 14));
        btnPesquisar.setText("Pesquisar");
        btnPesquisar.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnPesquisar.setName("btnPesquisar"); // NOI18N

        btnLimpar.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 14));
        btnLimpar.setText("Limpar");
        btnLimpar.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnLimpar.setName("btnLimpar"); // NOI18N

        jLabel8.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel8.setText("Endereço");
        jLabel8.setName("jLabel8"); // NOI18N

        txtEnderecoPesquisa.setFont(new java.awt.Font("Tahoma", 0, 12));
        txtEnderecoPesquisa.setName("txtEnderecoPesquisa"); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(cmbUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE)
                .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtEnderecoPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(76, 76, 76)
                .addComponent(btnPesquisar)
                .addGap(18, 18, 18)
                .addComponent(btnLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(45, 45, 45))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(btnLimpar)
                    .addComponent(btnPesquisar)
                    .addComponent(jLabel8)
                    .addComponent(cmbUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtEnderecoPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        getContentPane().add(jPanel1);
        jPanel1.setBounds(10, 20, 960, 80);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "UNIDADES", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Showcard Gothic", 0, 16))); // NOI18N
        jPanel2.setFont(new java.awt.Font("Showcard Gothic", 0, 16));
        jPanel2.setName("jPanel2"); // NOI18N
        jPanel2.setOpaque(false);
        jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btnExcluir.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 16)); // NOI18N
        btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sistemachamados/view/resources/Xicon.png"))); // NOI18N
        btnExcluir.setText("Excluir");
        btnExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnExcluir.setName("btnExcluir"); // NOI18N
        btnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExcluirActionPerformed(evt);
            }
        });
        jPanel2.add(btnExcluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 140, 110, -1));

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        tblUnidade.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        tblUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        tblUnidade.setCellSelectionEnabled(true);
        tblUnidade.setName("tblUnidade"); // NOI18N
        tblUnidade.getTableHeader().setResizingAllowed(false);
        tblUnidade.getTableHeader().setReorderingAllowed(false);
        tblUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tblUnidadeMouseClicked(evt);
            }
        });
        tblUnidade.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                tblUnidadeComponentShown(evt);
            }
        });
        tblUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                tblUnidadeKeyPressed(evt);
            }
        });
        jScrollPane1.setViewportView(tblUnidade);

        jPanel2.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, 920, 100));

        btnIncluir.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 16)); // NOI18N
        btnIncluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sistemachamados/view/resources/ViconUsado.png"))); // NOI18N
        btnIncluir.setText("Incluir");
        btnIncluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnIncluir.setName("btnIncluir"); // NOI18N
        btnIncluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnIncluirActionPerformed(evt);
            }
        });
        jPanel2.add(btnIncluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 140, 110, -1));

        btnAlterar.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 16)); // NOI18N
        btnAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sistemachamados/view/resources/!icon.png"))); // NOI18N
        btnAlterar.setText("Alterar");
        btnAlterar.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnAlterar.setName("btnAlterar"); // NOI18N
        btnAlterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnAlterarActionPerformed(evt);
            }
        });
        jPanel2.add(btnAlterar, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 140, 110, -1));

        getContentPane().add(jPanel2);
        jPanel2.setBounds(10, 104, 960, 190);

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "INCLUIR / ALTERAR UNIDADES", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Showcard Gothic", 0, 16))); // NOI18N
        jPanel3.setFont(new java.awt.Font("Tempus Sans ITC", 1, 24));
        jPanel3.setName("jPanel3"); // NOI18N
        jPanel3.setOpaque(false);

        jLabel3.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel3.setText("Unidade");
        jLabel3.setName("jLabel3"); // NOI18N

        txtEndereco.setFont(new java.awt.Font("Tahoma", 0, 14));
        txtEndereco.setName("txtEndereco"); // NOI18N

        jLabel4.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel4.setText("Endereço");
        jLabel4.setName("jLabel4"); // NOI18N

        btnCancelar.setFont(new java.awt.Font("Berlin Sans FB Demi", 0, 14)); // NOI18N
        btnCancelar.setText("Cancelar");
        btnCancelar.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btnCancelar.setName("btnCancelar"); // NOI18N

        txtUnidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtUnidade.setName("txtUnidade"); // NOI18N
        txtUnidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtUnidadeActionPerformed(evt);
            }
        });

        jLabel6.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel6.setName("jLabel6"); // NOI18N

        txtNumero.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtNumero.setName("txtNumero"); // NOI18N
        txtNumero.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtNumeroActionPerformed(evt);
            }
        });

        jLabel7.setFont(new java.awt.Font("Gautami", 3, 16));
        jLabel7.setText("Nº");
        jLabel7.setName("jLabel7"); // NOI18N

        jLabel9.setFont(new java.awt.Font("Gautami", 3, 16)); // NOI18N
        jLabel9.setText("CEP");
        jLabel9.setName("jLabel9"); // NOI18N

        jLabel10.setFont(new java.awt.Font("Gautami", 3, 16)); // NOI18N
        jLabel10.setText("Cidade");
        jLabel10.setName("jLabel10"); // NOI18N

        txtCidade.setFont(new java.awt.Font("Tahoma", 0, 14));
        txtCidade.setName("txtCidade"); // NOI18N

        cmbEstado.setFont(new java.awt.Font("Century Gothic", 0, 14)); // NOI18N
        cmbEstado.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Todos" }));
        cmbEstado.setName("cmbEstado"); // NOI18N

        jLabel11.setFont(new java.awt.Font("Gautami", 3, 16)); // NOI18N
        jLabel11.setText("Estado");
        jLabel11.setName("jLabel11"); // NOI18N

        txtCEP.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtCEP.setName("txtCEP"); // NOI18N
        txtCEP.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCEPActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(8, 8, 8)
                                .addComponent(txtEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtCidade, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(cmbEstado, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 202, Short.MAX_VALUE)
                                .addComponent(btnCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(43, 43, 43))))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel6)
                        .addContainerGap(938, Short.MAX_VALUE))))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jLabel10)
                    .addComponent(txtUnidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtCidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel11)
                    .addComponent(cmbEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE)
                        .addComponent(jLabel6))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(jLabel7)
                            .addComponent(txtEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel9)
                            .addComponent(btnCancelar)
                            .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );

        getContentPane().add(jPanel3);
        jPanel3.setBounds(10, 300, 960, 120);

        jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/sistemachamados/view/resources/FORM PRINCIPAL (FUNDOPANEL).png"))); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N
        getContentPane().add(jLabel5);
        jLabel5.setBounds(0, 0, 980, 460);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txtUnidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtUnidadeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtUnidadeActionPerformed

    private void txtNumeroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNumeroActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtNumeroActionPerformed

    private void tblUnidadeComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_tblUnidadeComponentShown

    }//GEN-LAST:event_tblUnidadeComponentShown

    private void formComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentShown
        btnIncluir.setEnabled(false);
        btnAlterar.setEnabled(false);
        btnExcluir.setEnabled(false);
        verificaPermissao();
        atualizarUnidade();
        preencherCombo();
       // preencherCombo();
        
        JOptionPane.showMessageDialog(null,"Form");
    }//GEN-LAST:event_formComponentShown

    public void verificaPermissao()
    {
        ArrayList<Acesso> listPermissao = usuarioLogado.getListAcessos();
        if(listPermissao != null){
            for (int i = 0; i < listPermissao.size(); i++) {
                String descr_pemissao=listPermissao.get(i).getDescr();

                if( descr_pemissao.equals("Incluir") ){
                    btnIncluir.setEnabled(true);
                }
                if( descr_pemissao.equals("Alterar") ){
                    btnAlterar.setEnabled(true);
                }
                if( descr_pemissao.equals("Excluir") ){
                    btnExcluir.setEnabled(true);
                }
            }
        }
    }

    public void preecherCampos(){
        if(tblUnidade.getRowCount() > 0){
           txtUnidade.setText(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 1).toString());
           txtCidade.setText(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 3).toString());
           txtEndereco.setText(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 5).toString());
           txtNumero.setText(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 6).toString());
           txtCEP.setText(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 7).toString());

        }
    }

    private void btnIncluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIncluirActionPerformed
        Local local = new Local();
        Endereco endereco = new Endereco();
        Cidade cidade = new Cidade();
        Estado estado = new Estado();
        if (txtUnidade.getText().equals("")){
            JOptionPane.showMessageDialog(null, "Preencha a Unidade.");
        }else{
            if(txtCidade.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Preencha a Cidade.");
            }else{
                if(txtEndereco.getText().equals("")){
                    JOptionPane.showMessageDialog(null, "Preencha o Endereço.");
                }else{
                    //JOptionPane.showMessageDialog(null, "define cidade");
                    //Essa parte cria o objeto cidade
                    cidade.setDescr(txtCidade.getText());
                    String estadoSelecionado = ((Estado)cmbEstado.getSelectedItem()).toString();
                    cidade.setEstado(estado.pesquisar(estadoSelecionado).get(0));
                    //cadastra o objeto Cidade
                    if(cidade.salvar(usuarioLogado)==true){
                        JOptionPane.showMessageDialog(null, "Cidade Incluída com sucesso.");
                    }else{
                        JOptionPane.showMessageDialog(null, "Erro no cadastro da Cidade, favor contatar o Administrador");
                    }
                    //pega a cidade cadastrada
                    ArrayList<Cidade> listCidade = (cidade.pesquisar(txtCidade.getText()));
                    Cidade cidadeCriada = listCidade.get(0);
                    //cria o objeto Enderdereço recebendo o objeto cidade cadastrado anteriormente
                    endereco.setDescr(txtEndereco.getText());
                    endereco.setCidade(cidadeCriada);
                    //Cadastra o Endereço
                    if(endereco.salvar(usuarioLogado)==true){
                        JOptionPane.showMessageDialog(null, "Endereço Incluído com sucesso.");
                    }else{
                        JOptionPane.showMessageDialog(null, "Erro no cadastro do Endereço, favor contatar o Administrador");
                    }
                    //pega o endereco cadastrado
                    ArrayList<Endereco> listEndereco = (endereco.pesquisar(txtEndereco.getText()));
                    Endereco enderecoCadastrado = listEndereco.get(0);
                    //cria o objeto Local recebendo o objeto endereco cadastrado anteriormente
                    int numero = (Integer.parseInt(txtNumero.getText()));
                    local.setNumero(numero);
                    int cep = (Integer.parseInt(txtCEP.getText()));
                    local.setCep(cep);
                    local.setNome(txtUnidade.getText());
                    local.setEndereco(enderecoCadastrado);
                    //Cadastra o Local
                    if(local.salvar(usuarioLogado)==true){
                         JOptionPane.showMessageDialog(null, "Unidade Incluída com sucesso.");
                    }else{
                         JOptionPane.showMessageDialog(null, "Erro no cadastro da Unidade, favor contatar o Administrador.");
                    }

            //limparCampos();
            atualizarUnidade();
            //preencherCombo();

                }
            }
        }
    }//GEN-LAST:event_btnIncluirActionPerformed

    private void txtCEPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCEPActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtCEPActionPerformed

    private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAlterarActionPerformed
        Local local = new Local();
        Endereco endereco = new Endereco();
        Cidade cidade = new Cidade();
        Estado estado = new Estado();
        if (txtUnidade.getText().equals("")){
            JOptionPane.showMessageDialog(null, "Selecione a Unidade.");
        }else{
            if(txtCidade.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Selecione a Cidade.");
            }else{
                if(txtEndereco.getText().equals("")){
                    JOptionPane.showMessageDialog(null, "Selecione o Endereço.");
                }else{
                   
                    //Essa parte cria o objeto cidade
                     JOptionPane.showMessageDialog(null, "1");

                     //JOptionPane.showMessageDialog(null, "1 "+tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 3));
                    cidade.setId((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 2)));
                    JOptionPane.showMessageDialog(null, "2");
                    cidade.setDescr(txtCidade.getText());
                    JOptionPane.showMessageDialog(null, "3");
                    String estadoSelecionado = ((Estado)cmbEstado.getSelectedItem()).toString();
                    JOptionPane.showMessageDialog(null, "4");
                    cidade.setEstado(estado.pesquisar(estadoSelecionado).get(0));
                    JOptionPane.showMessageDialog(null, "5");
                    //cadastra o objeto Cidade
                    if(cidade.alterar(usuarioLogado)==true){
                        JOptionPane.showMessageDialog(null, "Cidade Alterada com sucesso.");
                    }else{
                        JOptionPane.showMessageDialog(null, "Erro na alteração da Cidade, favor contatar o Administrador");
                    }
                    //pega a cidade cadastrada
                    JOptionPane.showMessageDialog(null, "6");
                    Cidade cidadeCriada = (cidade.selecionar((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 2))));
                    //cria o objeto Enderdereço recebendo o objeto cidade cadastrado anteriormente
                    JOptionPane.showMessageDialog(null, "7");
                    endereco.setId((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 4)));
                    JOptionPane.showMessageDialog(null, "8 ->> "+((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 4))));
                    endereco.setDescr(txtEndereco.getText());
                    JOptionPane.showMessageDialog(null, "9 ->> "+txtEndereco.getText());
                    endereco.setCidade(cidadeCriada);
                    JOptionPane.showMessageDialog(null, "10 ->> "+cidadeCriada.getDescr());
                    //Cadastra o Endereço
                    if(endereco.alterar(usuarioLogado)==true){
                        JOptionPane.showMessageDialog(null, "Endereço Alterado com sucesso.");
                    }else{
                        JOptionPane.showMessageDialog(null, "Erro na alteração do Endereço, favor contatar o Administrador");
                    }
                    //pega o endereco cadastrado
                    JOptionPane.showMessageDialog(null, "11");
                    Endereco enderecoCadastrado = (endereco.selecionar((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 4))));
                    //cria o objeto Local recebendo o objeto endereco cadastrado anteriormente
                    JOptionPane.showMessageDialog(null, "12");
                    local.setId((Integer)(tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 0)));
                    JOptionPane.showMessageDialog(null, "13");
                    int numero = (Integer.parseInt(txtNumero.getText()));
                    JOptionPane.showMessageDialog(null, "14");
                    local.setNumero(numero);
                    JOptionPane.showMessageDialog(null, "15");
                    int cep = (Integer.parseInt(txtCEP.getText()));
                    JOptionPane.showMessageDialog(null, "16");
                    local.setCep(cep);
                    JOptionPane.showMessageDialog(null, "17");
                    local.setNome(txtUnidade.getText());
                    JOptionPane.showMessageDialog(null, "18");
                    local.setEndereco(enderecoCadastrado);
                    JOptionPane.showMessageDialog(null, "19");
                    //Cadastra o Local
                    if(local.alterar(usuarioLogado)==true){
                         JOptionPane.showMessageDialog(null, "Unidade Alterada com sucesso.");
                    }else{
                         JOptionPane.showMessageDialog(null, "Erro na alteração da Unidade, favor contatar o Administrador.");
                    }
JOptionPane.showMessageDialog(null, "20");
            //limparCampos();
            atualizarUnidade();
            //preencherCombo();

                }
            }
        }
    }//GEN-LAST:event_btnAlterarActionPerformed

    private void tblUnidadeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tblUnidadeKeyPressed
       preecherCampos();
    }//GEN-LAST:event_tblUnidadeKeyPressed

    private void tblUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblUnidadeMouseClicked
        preecherCampos();
    }//GEN-LAST:event_tblUnidadeMouseClicked

    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed
        Local local = new Local();
        Endereco endereco = new Endereco();
        Cidade cidade = new Cidade();
        Estado estado = new Estado();
        if (txtUnidade.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Selecione a Unidade.");
        } else {



            local.setId((Integer) (tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 0)));
            if (local.deletar() == true) {
                JOptionPane.showMessageDialog(null, "Unidade Excluída com sucesso.");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão da Unidade, verifique se existe dependências.");
            }

            cidade.setId((Integer) (tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 2)));
            if (cidade.deletar() == true) {
                JOptionPane.showMessageDialog(null, "Cidade Excluída com sucesso.");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão da Cidade, verifique se existe dependências.");
            }
            
            endereco.setId((Integer) (tblUnidade.getValueAt(tblUnidade.getSelectedRow(), 4)));
            if (endereco.deletar() == true) {
                JOptionPane.showMessageDialog(null, "Endereço Excluído com sucesso.");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão do Endereço, verifique se existe dependências.");
            }

            //limparCampos();
            atualizarUnidade();
            //preencherCombo();
        }
    }//GEN-LAST:event_btnExcluirActionPerformed


    //------Atualiza a tabela com os items cadastrados
    private void atualizarUnidade(){
        DefaultTableModel modelo = new DefaultTableModel();
        tblUnidade.setModel(modelo);
        modelo.addColumn("Codigo");
        modelo.addColumn("Descrição");
        modelo.addColumn("Codigo");
        modelo.addColumn("Cidade");
        modelo.addColumn("Codigo");
        modelo.addColumn("Endereço");
        modelo.addColumn("Número");
        modelo.addColumn("CEP");

        ArrayList<Local> listLocal=Local.selecionar();
        for(int i=0; i < listLocal.size();i++)
        {
            Object[] linha = new Object[8];
            linha[0]=listLocal.get(i).getId();
            linha[1]=listLocal.get(i).getNome();
            linha[2]=listLocal.get(i).getEndereco().getCidade().getId();
            linha[3]=listLocal.get(i).getEndereco().getCidade().getDescr().toString();
            linha[4]=listLocal.get(i).getEndereco().getId();
            linha[5]=listLocal.get(i).getEndereco().getDescr().toString();
            linha[6]=listLocal.get(i).getNumero();
            linha[7]=listLocal.get(i).getCep();

            modelo.insertRow(modelo.getRowCount(), linha);
        }
    }

    private void preencherCombo(){

        Estado estado = new Estado();
        ArrayList<Estado> listEstado = estado.selecionar() ;

        if(listEstado != null)
        {
            cmbEstado.setModel(new DefaultComboBoxModel(listEstado.toArray()));
        }
        else
        {
            JOptionPane.showMessageDialog(this, "Falha no carregamento dos Estados.", "Verifique se existem Estados cadastrados", JOptionPane.WARNING_MESSAGE);
        }
    }


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnAlterar;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnIncluir;
    private javax.swing.JButton btnLimpar;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JComboBox cmbEstado;
    private javax.swing.JComboBox cmbUnidade;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable tblUnidade;
    private javax.swing.JTextField txtCEP;
    private javax.swing.JTextField txtCidade;
    private javax.swing.JTextField txtEndereco;
    private javax.swing.JTextField txtEnderecoPesquisa;
    private javax.swing.JTextField txtNumero;
    private javax.swing.JTextField txtUnidade;
    // End of variables declaration//GEN-END:variables

}
